<!--********************************************************************
* Copyright© 2000 - 2025 SuperMap Software Co.Ltd. All rights reserved.
*********************************************************************-->
<!--********************************************************************
* 该示例需要引入 
* proj4js (https://github.com/proj4js/proj4js)
*********************************************************************-->
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title data-i18n="resources.title_surfaceAnalystService_FGB"></title>
    <script type="text/javascript" src="../js/include-web.js"></script>
    <script type="text/javascript" include="proj4" src="../../dist/maplibregl/include-maplibregl.js"></script>
</head>
<body style="margin: 0;overflow: hidden;background: #fff;width: 100%;height:100%;position: absolute;top: 0;">
<div id="map" style="margin:0 auto;width: 100%;height: 100%"></div>
<script type="text/javascript">
    var host = window.isLocal ? window.server : "https://iserver.supermap.io";
    var map, surfaceAnalystService, surfaceAnalystParameters,
        attribution = "<a href='https://maplibre.org/' target='_blank'>© MapLibre </a>" +
            " with <span>© <a href='https://iclient.supermap.io' target='_blank'>SuperMap iClient</a> | </span>" +
            " Map Data <span>© <a href='http://support.supermap.com.cn/product/iServer.aspx' target='_blank'>SuperMap iServer</a></span> ",
        baseUrl = host + "/iserver/services/map-china/rest/maps/China/zxyTileImage.png?z={z}&x={x}&y={y}",
        serviceUrl = host + "/iserver/services/spatialanalyst-sample/restjsr/spatialanalyst";
    map = new maplibregl.Map({
        container: 'map',
        style: {
            "version": 8,
            "sources": {
                "raster-tiles": {
                    "attribution": attribution,
                    "type": "raster",
                    "tiles": [baseUrl],
                    "tileSize": 256
                }
            },
            "layers": [{
                "id": "simple-tiles",
                "type": "raster",
                "source": "raster-tiles",
            }]
        },
        center: [110.2740019864, 36.8970124079],
        zoom: 4
    });
    map.addControl(new maplibregl.NavigationControl(), 'top-left');
    map.addControl(new maplibregl.supermap.LogoControl({ link: "https://iclient.supermap.io" }), 'bottom-right');

    map.on("load", function () {
        surfaceAnalystProcess();
    });

    function surfaceAnalystProcess() {
        //创建表面分析服务参数
        var region = {
            "type": "Feature",
            "geometry": {
                "type": "Polygon",
                "coordinates": [[
                    [0, 4010338],
                    [1063524, 4010338],
                    [1063524, 3150322],
                    [0, 3150322]
                ]]
            }
        };
        surfaceAnalystParameters = new maplibregl.supermap.DatasetSurfaceAnalystParameters({
            extractParameter: new maplibregl.supermap.SurfaceAnalystParametersSetting({
                datumValue: 0,
                interval: 2,
                resampleTolerance: 0,
                smoothMethod: maplibregl.supermap.SmoothMethod.BSPLINE,
                smoothness: 3,
                clipRegion: region
            }),
            dataset: "SamplesP@Interpolation",
            resolution: 9000,
            zValueFieldName: "AVG_TMP"
        });
        //创建表面分析服务实例
        surfaceAnalystService = new maplibregl.supermap.SpatialAnalystService(serviceUrl);
        surfaceAnalystService.surfaceAnalysis(surfaceAnalystParameters, 'FGB').then(function (surfaceAnalystServiceResult) {
            var FGBLayer = new maplibregl.supermap.FGBLayer({
              url: surfaceAnalystServiceResult.result.newResourceLocation,
              featureLoader: function(feature) {
                var lineTemp = feature;
                var changeCoordinates = [];
                //转换line中的点
                for (j = 0; j < lineTemp.geometry.coordinates.length; j++) {
                    var x = lineTemp.geometry.coordinates[j][0];
                    var y = lineTemp.geometry.coordinates[j][1];
                    var coordinate = proj4('EPSG:3857', 'EPSG:4326', [x, y]);
                    //组成转后的点数组
                    coordinate[0] += 106;
                    changeCoordinates.push(coordinate)
                }
                lineTemp.geometry.coordinates = changeCoordinates;
                console.log('lineTemp.geometry.coordinates', lineTemp.geometry.coordinates);
                return lineTemp;
              },
              strategy: 'all',
              paint: {
              "line-color": "red",
              "line-width": 4
              }
            });
            map.addLayer(FGBLayer);
        });
    }
</script>
</body>
</html>
